package com.person.sys.service;

import java.util.Date;
import java.util.List;

import com.person.commons.exception.InfrastructureException;
import com.person.commons.utils.FlipPageInfo;
import com.person.sys.model.SysCode;
import com.person.sys.model.SysLog;

public interface SysLogService {

	/**
	 * 该方法返回：统计从日志开始记取到现在的总天数，日志记录总数，今年日志记记录总数，本月日志记记录总数，本日日志记记录总数，日志平均记录总数
	 * 
	 * @return list
	 * @author wang zitao
	 */
	public abstract List summary(); 
	
	/**
	 * 该方法统计最近n条日志记录
	 * 
	 * @param 传入的要查询的最近n条记录
	 * @return 日志记录
	 * @author wang zitao
	 * 
	 */
	public  abstract FlipPageInfo recentRecord(FlipPageInfo fpi);
	
	/**
	 * 该方法用于查找某个用户最近的10条记录
	  * @param 传入page对象,用户Id
	 * @return 日志记录
	 * @author wang zitao
	 */
	public abstract FlipPageInfo recentRecord(FlipPageInfo fpi,String userId);
	
	/**
	 * 该方法用于查找日志类型 *
	 * 
	 * @return 所有系统日志类型
	 * @author wang zitao
	 * 
	 */
	public abstract List<SysCode> searchLogType();
	
	/**
	 * 该方法用于查找日志查询
	 * @param fpi 分页对象			 
	 * @param codeNo 日志类型
	 * @param startTime开始时间
	 * @param endTime结束时间
	 * @param LogIp IP地址
	 * @return  分页对象
	 * @author wang zitao 
	 *
	 */
	public FlipPageInfo  searchLog(FlipPageInfo fpi,String codeNo,Date startTime,Date endTime,String logIp);
	
	
	/**
	 * 该方法用于删除符合条件的日志			 
	 * @param codeNo 日志类型
	 * @param startTime开始时间
	 * @param endTime结束时间
	 * @param LogIp IP地址
	 * @return  删除所有符合条件的系统日志
	 * @author wang zitao 
	 *
	 */
	public char  deleteLog(String codeNo,Date startTime,Date endTime,String logIp);
	
	
	
	/**
	 * 该方法用于清空所有系统日志			 * 
	 * @return  清空是否成功
	 * @author wang zitao 
	 *
	 */
	public char  deleteAllLog();
	
	
	/**
	 * 该方法用于删除所选的系统日志 *
	 * @param sellog 所选logId
	 * @return S=0 成功；s=1失败
	 * @author wang zitao
	 * 
	 */
	public char deleteLog(String[] sellog);
}


